home *** CD-ROM | disk | FTP | other *** search
/ PC Player 2004 May / pc player 2004-05.iso / Demos / FarCry / Data1.cab / _67E1EE9356AB4D8FA1722B555AC36AEB < prev    next >
Encoding:
Text File  |  2004-01-06  |  4.4 KB  |  131 lines

  1. -- circular patroling behaviour - 
  2. -- Created by Sten; 18092002
  3. --------------------------
  4.  
  5.  
  6. AIBehaviour.IGPatrolCircle = {
  7.     Name = "IGPatrolCircle",
  8.     XTime = 0,
  9.     PathStep = 0,
  10.     Anim = "",
  11.     Delay = 0,
  12.     count=0,
  13.     
  14.     RandomDelay = {"AIS_Delay_1","AIS_Delay_2","AIS_Delay_3","AIS_Delay_4"},        
  15.     Status = "choose",        
  16.  
  17.     -- SYSTEM EVENTS            -----
  18.     
  19.     ---------------------------------------------
  20.     OnSpawn = function(self,entity )
  21.         self.PathStep =    entity.Properties.pathstart - 1;
  22.         self:AISF_PatrolPath(entity,sender);
  23.     end,
  24.     ---------------------------------------------
  25.     OnSelected = function(self,entity )
  26.     end,
  27.     ---------------------------------------------
  28.     OnActivate = function(self,entity )
  29. --        self:AISF_PatrolPath(entity,sender);
  30.     end,
  31.     ---------------------------------------------
  32.     OnNoTarget = function( self,entity )
  33.     end,
  34.     ---------------------------------------------
  35.     OnPlayerSeen = function( self,entity )
  36.         entity:SelectPipe(0,"force_reevaluate");
  37.     end,
  38.     ---------------------------------------------
  39.     OnEnemySeen = function(self,entity )
  40.     end,
  41.     ---------------------------------------------
  42.     OnEnemyMemory = function(self,entity )
  43.     end,
  44.     ---------------------------------------------
  45.     OnInterestingSoundHeard = function(self,entity )
  46.         entity:SelectPipe(0,"force_reevaluate");
  47.     end,
  48.     ---------------------------------------------
  49.     OnThreateningSoundHeard = function( self,entity )
  50.         entity:SelectPipe(0,"force_reevaluate");
  51.     end,
  52.     ---------------------------------------------
  53.     OnReload = function(self,entity )
  54.     end,
  55.     ---------------------------------------------
  56.     OnClipNearlyEmpty = function(self,entity )
  57.     end,
  58.     ---------------------------------------------
  59.     OnGroupMemberDied = function(self, entity, sender)
  60.         entity:SelectPipe(0,"force_reevaluate");
  61.     end,
  62.     ---------------------------------------------
  63.     OnNoHidingPlace = function(self, entity, sender )
  64.     end,    
  65.     ---------------------------------------------
  66.     OnReceivingDamage = function ( self, entity, sender)
  67.         entity:SelectPipe(0,"force_reevaluate");
  68.     end,
  69.     ---------------------------------------------
  70.     OnBulletRain = function ( self, entity, sender)
  71.         entity:SelectPipe(0,"force_reevaluate");
  72.     end,
  73.     ---------------------------------------------
  74.     OnPlayerSeenByGroupMember = function ( self, entity, sender)
  75.         entity:SelectPipe(0,"force_reevaluate");
  76.     end,        
  77.     ----------------------------------------------------FUNCTIONS -------------------------------------------------------------
  78.     AISF_CallForHelp = function (self, entity, sender)
  79.         entity:SelectPipe(0,"force_reevaluate");
  80.     end,
  81.     ------------------------------------------------------------------------
  82.     AISF_GoOn = function (self, entity, sender)
  83.         if (self.count>0) then
  84.             self.count=self.count-1;
  85.             if (self.Status == "delay") then
  86.                 entity:SelectPipe(0,self.RandomDelay[random(1,(getn(self.RandomDelay)))]);
  87.                 if (random(1,3)==1) then
  88.                     self.Status = "choose";
  89.                 else self.Status = "look";
  90.                 end
  91.             elseif (self.Status == "choose") then
  92.                 entity.cnt.AnimationSystemEnabled = 0;
  93.                 self.Status = "look";
  94.                 local MyAnim = IdleManager:GetIdle();
  95.                 self.Anim = MyAnim.Name;
  96.                 self.Delay = MyAnim.duration;
  97.                     -----    
  98.                     AI:CreateGoalPipe(self.Anim.."AIS_IdleDelay");
  99.                     AI:PushGoal(self.Anim.."AIS_IdleDelay","timeout",1,self.Delay);
  100.                     AI:PushGoal(self.Anim.."AIS_IdleDelay","signal",0,1,"AISF_GoOn",0);
  101.                     -----
  102.                 entity:StartAnimation(0,self.Anim);                            
  103.                 entity:SelectPipe(0,self.Anim.."AIS_IdleDelay");
  104.             elseif (self.Status == "look") then
  105.                 entity.cnt.AnimationSystemEnabled = 1;
  106.                 self.Status = "delay";    
  107.                 if (random(1,2)==1) then
  108.                     entity:SelectPipe(0,"AIS_LookLeft");
  109.                 else
  110.                     entity:SelectPipe(0,"AIS_LookRight");
  111.                 end
  112.             end
  113.         else    
  114.             self:AISF_PatrolPath(entity,sender);
  115.         end
  116.     end,
  117.     ------------------------------------------------------------------------
  118.     AISF_PatrolPath = function (self, entity, sender)
  119.         entity.cnt.AnimationSystemEnabled = 1;
  120.         self.count = random(4,7);
  121.         
  122.         self.PathStep = self.PathStep + 1;
  123.         --System:LogToConsole(entity:GetName().." .. Path Step"..self.PathStep);
  124.             
  125.         if (self.PathStep == entity.Properties.pathsteps) then
  126.             self.PathStep = 0;
  127.         end
  128.         entity:SelectPipe(0,"JobPatrolIndoor",entity.Properties.pathname..self.PathStep);
  129.     end,
  130.     ------------------------------------------------------------------------    
  131. }